package edu.upc.negocio;

import java.util.ArrayList;
import edu.upc.entidades.TareasGenerales;
import edu.upc.entidades.Usuario;

public class TareasGeneralesNegocio {
	
	private ArrayList<TareasGenerales> tareas;
	
	public TareasGeneralesNegocio(){
		this.tareas = new ArrayList<TareasGenerales>();		
	}

	public ArrayList<TareasGenerales> getTareas() {
		return tareas;
	}

	public void setTareas(ArrayList<TareasGenerales> tareas) {
		this.tareas = tareas;
	}
	
	public boolean insertar(String id, String asunto, String fecvenc, String responsable, String comentario, ArrayList<Usuario> user){
		if(!asunto.isEmpty() && !fecvenc.isEmpty() && !responsable.isEmpty()){
			this.tareas.add(new TareasGenerales(id, asunto, fecvenc, responsable, comentario, user));
			return true;
		}
		else{
			System.out.println("No existe tarea - No se puede completar el registro de tarea");
			return false; 
		}
	}
	
	public boolean actualizar(String id, String asunto, String fecvenc, String responsable, String comentario, ArrayList<Usuario> user) {
		TareasGenerales tarea = buscarTarea(id);
		if (tarea != null && tarea.isAsignado() == false && !asunto.isEmpty() && !fecvenc.isEmpty() && !responsable.isEmpty()) {
			TareasGenerales nuevaTarea = new TareasGenerales(id, asunto, fecvenc, responsable, comentario, user);
			eliminarTarea(id);
            tareas.add(nuevaTarea);
            return true;
        }else{
        	return false;
        }
    }
	
	public void eliminarTarea(String id) {
    	TareasGenerales mod = buscarTarea(id);
        if (mod != null)
            tareas.remove(mod);
        else
        	System.out.println("No existe");
    }
	
	public boolean eliminarAsignaciones(String id, ArrayList<String> usuarios) {
    	TareasGenerales mod = buscarTarea(id);
        if (mod != null && mod.getUsuarios().size() > 0){
        	for(Usuario usuario:mod.getUsuarios()){
        		if(usuarios.contains(usuario.getUsuLogin())){
        			mod.getUsuarios().remove(usuario);
        			return true;
        		}
    		}
        }
        	System.out.println("No hay asignaciones");
        	return false;

    }
	
	public TareasGenerales buscarTarea(String id) {
        for( TareasGenerales mod  : tareas)
            if(mod.getIdTarea().equals(id)){
            	//System.out.println("encontro Tarea");
            	return mod;
            }
        System.out.println("No encontro Tarea");
        return null;
    }

	public boolean asignar(String id) {
		if(buscarTarea(id) !=null){
			TareasGenerales tarea = buscarTarea(id);
			tarea.setAsignado(true);
			return true;
		}
		return false;
	}	

}
